#pragma once

#include<iostream>
#include<functional>

//构建一个任务。
// class Tesk
// {
//     //using func_t = std::function<int(int,int)>;
//     typedef std::function<int(int,int)> func_t;

// public:
//     Tesk()
//     { }
//     Tesk(const int x, const int y , func_t callback):_x(x),_y(y),_callback(callback)
//     { }
//     int operator()()
//     {
//         int ret = _callback(_x, _y);
//         return ret;
//     }
    
// //private:
//     int _x;
//     int _y;
//     func_t _callback;
// };



class Tesk
{
    //using func_t = std::function<int(int,int)>;
    typedef std::function<int(int,int, char)> func_t;

public:
    Tesk()
    { }
    Tesk(const int x, const int y , char op, func_t callback):_x(x),_y(y),_op(op),_callback(callback)
    { }
    int operator()()
    {
        int ret = _callback(_x, _y, _op);
        return ret;
    }
    
//private:
    int _x;
    int _y;
    char _op;
    func_t _callback;
};